﻿using System;
using System.Text;
using System.IO;
using System.Collections.Generic;
using System.Xml;
using System.Windows.Forms;

namespace CaoNiMaCoolPad
{
    class Program
    {
        //private static Folders folders;
        private static bool alwaysContinue = false;

         [STAThread]
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new StartForm());

            //string str = "b9 59 b9 59";
            //Console.WriteLine(str.HexadecimalToNormal(Encoding.Unicode, ' '));

            ////int[] text = { 0, 1, 2, 3, 4, 5, 6, 2, 4, 8, 1, 0 };
            ////int[] pattern = { 4, 5, 6 };
            ////int p = 0;
            ////MyLibrary.Algorithms.KmpMatch<int[], int>(text, pattern, s => new Tuple<bool, int>(p < s.Length, s[p++]));
            ////Console.WriteLine(p - 1);
            //Console.ReadKey();
            return;


            //folders = new Folders(GetSmsconf);


            //Console.WriteLine("指定酷派导出的短消息的TBL文件。例如E:\\smsinfo.tbl");

            //List<Message> messages = ReadCoolPadMessageTblFile(Console.ReadLine().Trim(new char[] { ' ', '\"' }));

            //Console.WriteLine("指定转换后的文件的位置，例如D:\\message.xml");
            //string xmlFile = Console.ReadLine().Trim(new[] { ' ', '\"' }); //"D:\\message.xml";
            //SaveToXml(xmlFile, messages);
            //string xslFile = Path.Combine(Path.GetDirectoryName(xmlFile), "style.xsl");
            //WriteXslFile(xslFile);

            //Console.WriteLine("\r\n本程序已导出您的短消息，生成了以下文件：\r\n"
            //                   + "  {0}： 您的短消息的原始副本，可二次开发使用\r\n"
            //                   + "  {1}： 用于修饰上一文件的样式信息\r\n"
            //                   + "{0}的阅读方法是右击此文件，打开方式，选择IE(7)浏览器。高版本的火狐浏览器、Chrome、Opera或许也可以。\r\n\r\n"
            //                   + "如果您需要导出多个xml文件，可以将它们导出到同一目录下，而一个xsl文件可以被共用。于是节省了您的硬盘空间。"
            //                   , xmlFile, xslFile);

            //Console.WriteLine("  完成。作者：爱让一切都对了，邮箱：gqqnb2005+ps@gmail.com。版本号：2011.3.22");
            //Console.ReadKey();

        }

        //private static Stream GetSmsconf()
        //{
        //    Console.WriteLine("您应该是在手机里创建了自己的文件夹。为了获得这些文件夹里的短信的完整信息，本程序需要smsconf.tbl的位置。例如D:\\smsconf.tbl。");

        //    //FileStream fs = new FileStream(Console.ReadLine().Trim(new char[] { ' ', '\"' }), FileMode.Open);
        //    FileStream fs = new FileStream(@"G:\smsconf.tbl", FileMode.Open);
        //    return fs;
        //}

        ///// <summary>
        ///// 处理异常。并决定是否停止。true为停止。
        ///// </summary>
        ///// <param name="sender"></param>
        ///// <param name="e"></param>
        ///// <returns></returns>
        //private static bool ExceptionHandler(Message sender, Exception e)
        //{
        //    if (alwaysContinue)
        //        return true;

        //    Console.WriteLine("读取短信中发生了异常！" + e.Message + "\n按y显示短信内容。");
        //    if (Console.ReadKey().KeyChar == 'y')
        //        Console.WriteLine("手机号码：{0}\t姓名：{1}\t时间：{2}\n内容：{3}", sender.PhoneNumber, sender.Name, sender.Time, sender.Content);
        //    Console.WriteLine("请问是否继续获取短信？y：继续\tya:Yes to All，总是继续，即使发生异常也不再提醒\n按其他键则终止程序");
        //    string line = Console.ReadLine();
        //    if (line == "y")
        //        return true;
        //    else if (line == "ya")
        //    {
        //        alwaysContinue = true;
        //        return true;
        //    }
        //    else
        //    {
        //        Environment.Exit(1);
        //        return false;
        //    }
        //}

        //private static void WriteXslFile(string fileName)
        //{
        //    if (File.Exists(fileName) == false)
        //    {
        //        TextWriter sw = new StreamWriter(fileName);
        //        sw.Write(Properties.Resources.style);
        //        sw.Close();
        //    }
        //}

        //private static void SaveToXml(string fileName, List<Message> messages)
        //{

        //    XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8);

        //    writer.WriteStartDocument();
        //    writer.WriteProcessingInstruction("xml-stylesheet", "type='text/xsl' href='style.xsl'");


        //    writer.Formatting = Formatting.Indented;

        //    writer.WriteStartElement("Messages");

        //    writer.WriteStartElement("count");
        //    writer.WriteValue(messages.Count);
        //    writer.WriteEndElement();

        //    foreach (Message m in messages)
        //    {
        //        writer.WriteStartElement("Message");

        //        writer.WriteStartElement("location");
        //        writer.WriteString(m.Location);
        //        writer.WriteEndElement();

        //        writer.WriteStartElement("phoneNumber");
        //        writer.WriteString(m.PhoneNumber);
        //        writer.WriteEndElement();

        //        writer.WriteStartElement("name");
        //        writer.WriteString(m.Name);
        //        writer.WriteEndElement();

        //        writer.WriteStartElement("time");
        //        writer.WriteString(m.Time.ToString());
        //        writer.WriteEndElement();

        //        writer.WriteStartElement("time2");
        //        writer.WriteString(m.Time2.ToString());
        //        writer.WriteEndElement();

        //        writer.WriteStartElement("content");
        //        writer.WriteString(m.Content);
        //        writer.WriteEndElement();

        //        writer.WriteEndElement();
        //    }
        //    writer.WriteEndElement();

        //    writer.WriteEndDocument();

        //    writer.Close();
        //}

        //private static List<Message> ReadCoolPadMessageTblFile(string fileName)
        //{
        //    byte[] message = new byte[Message.MaxMessageLength];
        //    FileStream fs = new FileStream(fileName, FileMode.Open);

        //    ReadBeginning(fs, message, 4);
        //    List<Message> messages = new List<Message>();
        //    while (ReadMessage(fs, message, messages)) ;
        //    fs.Close();

        //    return messages;
        //}


        //private static void ReadBeginning(FileStream fs, byte[] message, int length)
        //{
        //    if (length != fs.Read(message, 0, length))
        //        throw new FormatException();
        //}

        //private static bool ReadMessage(FileStream fs, byte[] message, IList<Message> list)
        //{
        //    if (fs.Read(message, 0, Message.MaxMessageLength) >= 1620)
        //    {
        //        Message m = new Message(list.Count, message, folders);
        //        list.Add(m);
        //        if (m.Exception == null || ExceptionHandler(m, m.Exception) == false)
        //            return true;
        //        else
        //            return false;
        //    }
        //    else
        //        return false;
        //}









    }
}
